Conventionally, in an information processing device as represented by e.g. a digital household electric appliance or a mobile phone, multitudes of tasks are constantly executed or activated on a computer system to realize a variety of functions.
In recent years, services to be provided by the information processing device have been versatile, as the network of the information processing device has been developed, and the user request has been upgraded. As the user request is upgraded, the number of jobs and tasks to be executed by the information processing device, and the throughput thereof are increased, and the processing contents of jobs and tasks tend to be complicated.
In order to cope with an increase in the number of jobs and tasks, and the throughput thereof, a computer system incorporated with CPUs (Central Processing Units), or a single CPU capable of concurrently executing computations is configured. Thus, jobs and tasks are concurrently executed on the computer system.
In the computer system, it is necessary to configure an efficient job and task scheduling in order to acquire a processing time suitable for the calculation capability of the computer system. In particular, in a computer system capable of concurrently executing tasks, since the tasks are executed independently of each other, synchronous designing between jobs and between tasks, or determining an execution order is an important factor for reducing a process standby time.
In particular, in a process whose execution is predefined in a system, such as a system activation process, efficiently determining an execution order of jobs and tasks is essentially important to reduce a time required for activating the system. In the specification, a process whose execution is predefined, such as a system activation process, is a process of shifting a system to a predetermined condition by repeating a predetermined process every time while cooperating jobs and tasks to each other.
Conventionally, as a method for determining an execution order of jobs in a computer system capable of concurrently executing the jobs, there has been proposed a method for reducing a processing time of an overall system by performing a simulation based on a past job execution log(see e.g. patent literature 1). A job of executing a batch process, which is a collective data process, is such that a predetermined process is executed with respect to a predetermined input file. The job does not depend on a start time. Thus, plural jobs are periodically repeated. A simulation is performed with respect to the job of this type, based on a past execution log. Then, scheduling of the jobs is performed prior to a job execution in a targeted computer system, or at the time of system designing, thereby reducing a processing time of the overall system.
In the conventional configuration, however, execution start conditions of the respective jobs are determined, using access log information of files to which an input/output operation has been performed during execution of each job, and execution times of the respective jobs are calculated based on execution log information. In other words, an execution start time of each job is calculated based on a past job execution result. As a result, in the case where the conventional configuration is observed from a viewpoint of a computer system of executing a process by these jobs, an execution order of jobs is determined by a static analysis using the already acquired log information. The conventional execution order determining method may cause a problem, in the case where a job whose processing time is changed depending on the amount of data to be processed, such as a file system checking process, in a computer system internally provided with a hard disk drive. In other words, the conventional art has drawbacks that it is impossible to obtain an optimum job execution start time with respect to each of the computer systems, based on execution times of the respective jobs included in execution log information, which has been collected at the time of system designing or system configuration, and it is impossible to determine an efficient execution order of jobs.